]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
app-system: Put back support for the installed-changed signal
authorJasper St. Pierre <jstpierre@mecheye.net>
Thu, 26 Sep 2013 21:11:45 +0000 (17:11 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Thu, 7 Nov 2013 21:35:03 +0000 (16:35 -0500)
Use the new GAppInfoMonitor that Ryan added to glib to know when the
set of apps has changed.

https://bugzilla.gnome.org/show_bug.cgi?id=711631

src/shell-app-system.c

index 4762909942aa5b077317e784333720650df93b0a..d9c57e0fbcb1cf4e4c4835df27f29c6eb9b86873 100644 (file)
@@ -71,10 +71,20 @@ static void shell_app_system_class_init(ShellAppSystemClass *klass)
   g_type_class_add_private (gobject_class, sizeof (ShellAppSystemPrivate));
 }
 
+static void
+installed_changed (GAppInfoMonitor *monitor,
+                   gpointer         user_data)
+{
+  ShellAppSystem *self = user_data;
+
+  g_signal_emit (self, signals[INSTALLED_CHANGED], 0, NULL);
+}
+
 static void
 shell_app_system_init (ShellAppSystem *self)
 {
   ShellAppSystemPrivate *priv;
+  GAppInfoMonitor *monitor;
 
   self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
                                                    SHELL_TYPE_APP_SYSTEM,
@@ -86,6 +96,10 @@ shell_app_system_init (ShellAppSystem *self)
                                            (GDestroyNotify)g_object_unref);
 
   priv->startup_wm_class_to_id = g_hash_table_new (g_str_hash, g_str_equal);
+
+  monitor = g_app_info_monitor_get ();
+  g_signal_connect (monitor, "changed", G_CALLBACK (installed_changed), self);
+  installed_changed (monitor, self);
 }
 
 static void